﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XLB.ExtensionMethod
{
    /// <summary>
    /// 计算机操作
    /// </summary>
    public class ComputerHelper
    {
        /// <summary>
        /// 立即关机
        /// </summary>
        public static void ShutDown()
        {
            // 创建一个新的ProcessStartInfo对象
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                FileName = "shutdown", // 指定命令名
                Arguments = "/s /t 0", // 指定参数，这里设置立即关机
                UseShellExecute = false, // 不使用系统外壳程序启动
                RedirectStandardOutput = true, // 重定向标准输出
                CreateNoWindow = true // 不创建新窗口
            };

            // 启动进程
            using (Process process = Process.Start(startInfo))
            {
                // 获取命令的输出（如果需要）
                string output = process.StandardOutput.ReadToEnd();
                Console.WriteLine(output);
            }
        }

        /// <summary>
        /// 指定进程是否运行
        /// </summary>
        /// <param name="processName">进程名称。例如：HotelQrCodeSystem</param>
        public static bool IsTheProcessRunning(string processName)
        {
            //string s_Name = "民宿验证程序";
            try
            {
                return Process.GetProcessesByName(processName).Length > 0;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

        /// <summary>
        /// 运行指定程序
        /// </summary>
        /// <param name="path"></param>
        public static void ProcessRun(string path)
        {
            try
            {
                Process.Start(path);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            
        }
    }
}
